package com.chenglu.android.index.mvp.contract;


import android.graphics.Matrix;

import com.chenglu.android.common.base.BaseView;
import com.chenglu.android.index.bean.BannerBeanList;
import com.chenglu.android.index.bean.IndexRecomBean;
import com.chenglu.android.index.bean.NearbyShopBean;
import com.chenglu.android.index.bean.PageListBean;
import com.chenglu.android.index.bean.TabTitleBean;

import java.util.Map;

import io.reactivex.rxjava3.core.Observable;

/**
 * @author: lyj
 * @Created by Copyright 2023/6 Guangzhou Hongma Technology Co., Ltd. All rights reserved.
 *
 */
public interface IndexContract {

    /**
     *
     * @description model
     *
     */

    public interface IndexModel{

        Observable<BannerBeanList> getBannerList(String shopsTypeId , String showType);

        Observable<PageListBean> getPageList(String level , String isIdxShow);

        Observable<NearbyShopBean> getNearbyShop(String lng , String lat);


        Observable<IndexRecomBean> getIndexRecom(Map<String,String> map);

        Observable<IndexRecomBean> getIndexSell(Map<String,String> map);


        Observable<TabTitleBean> getTabTitle();

        Observable<IndexRecomBean> getTabTitleData(Map<String,String> map);

    }


    /**
     *
     * @description view
     *
     */

    interface View extends BaseView {
        @Override
        void showLoading();

        @Override
        void dismissLoading();

        @Override
        void onEmpty(Object tag);

        @Override
        void onError(String errMessage);

        void getBannerList(BannerBeanList bean);

        void getPageList(PageListBean bean);

        void getNearbyShop(NearbyShopBean bean);

        void getIndexRecom(IndexRecomBean bean);

        void getIndexSell(IndexRecomBean bean);

        void getTabTitle(TabTitleBean bean);

        void getTabTitleData(IndexRecomBean bean);

    }

    /**
     *
     * @description presenter
     *
     */

    interface IndexPresenter {


        void getBannerList(String shopsTypeId , String showType);

        void getPageList(String level , String isIdxShow);

        void getNearbyShop(String lng , String lat);

        void getIndexRecom(Map<String,String> map);

        void getIndexSell(Map<String,String> map);

        void getTabTitle();

        void getTabTitleData(Map<String,String> map );


    }
}